In designing an integrated circuit, certain possibly conflicting considerations can affect choices made in the design. For example, the circuit may need to fit within a certain size or area, which may be dictated by the process technology used to build the circuit and/or applications in which the circuit is to be used. As another example, the circuit may need to meet certain timing requirements to perform the operations for which the circuit is designed. As another example, excessive complexity may result in the circuit taking too long to be developed to be useful when the circuit goes into production.
On-chip memory is one component where design considerations may require limitations be placed on the implementation of the memory. For example, area requirements may limit the size of memory components of an integrated circuit. Area may further limit access to the memory by other components of the integrated circuit, since wiring ports of the memory to the other components may require a large amount of space. Wiring a memory to multiple components in the circuit may also result in long wires, which may cause issues with timing due to the time required for signals to traverse the wires. Wiring and timing issues may be alleviated by a circuit such as a crossbar, but a crossbar may require a large amount of area on the chip.
For these and other reasons, certain restrictions may be placed on the on-board memory of an integrated circuit. For example, the memory may be divided into partitions, instead of being implemented using one monolithic memory component. As a further example, an execution component of the integrated circuit may be wired to one memory partition, so that the execution component can read and write to the one memory partition, but is not wired to others of the memory partitions. In this example, the execution component has access to memory for input and output needs, but the amount of wiring needed in the design, and the length of these wires, can be reduced.